<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // location=file:///C:/Users/WH2007001/Desktop/JS%20test/doublecross/18-12%20%E5%B0%86url%20%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E4%B8%BAJS%E5%AF%B9%E8%B1%A1.html?a=10&b=20&c=30#hash


        // 参数为：
        // ?a=10&b=20&c=30#hash

        // location.search方法
        function queryToObj() {
            const res = {};
            const search = location.search.substr(1); // 去掉前面的 ？ 
            console.log(search);
            // 将剩余内容以&分隔并存入一个数组。


            // forEach() 方法用于调用数组的每个元素，并将元素传递给回调函数。


            search.split('&').forEach(paramStr => {
                // 每次循环arr都是一个长度为2的数组
                const arr = paramStr.split('=');
                const key = arr[0];
                const val = arr[1];
                res[key] = val;
            })
            return res;
        }
        queryToObj(); // {a: "10", b: "20", c: "30"}


        // URLSearchParams方法
        function queryToObj1() {
            const res = {};
            const pList = new URLSearchParams(location.search);
            pList.forEach((val, key) => {
                res[key] = val;
            });
            return res;
        }
    </script>
</body>

</html>